package meuteste;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Esta classe irá fazer a conexão com o BD, além de executar todas as operações relacionadas ao 
 * banco de dados.
 * @author Tiago
 */
public class Conexao {

    private Connection con;
    private Statement stm;
    private String ip;
    
    public Conexao(String ip, String usuario, String senha) {
        this.ip = ip;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Driver ok");
        } catch (ClassNotFoundException ex) {
            System.out.println("Driver com problema");
        }
        try {
            con = DriverManager.getConnection("jdbc:mysql://" + ip, usuario, senha);
            System.out.println("Conexão com o BD feita");
        } catch (SQLException ex) {
            System.out.println("Conexão com o BD não realizada");
        }

        /*
         * Aqui é relacionado a classe DataHora a classe Conexao.
         */
    }

    public void gravarLeituras(int no, float valor, int min, int hora, int dia, int mes, int ano) {

        try {
            stm = con.createStatement();
            stm.execute("insert into leituras (Data, Hora, valor, sensor_id) values ('" + dia + "/" + mes + "/" + ano + "','" + hora + ":" + min + "'," + valor + "," + no + ")");  
            ResultSet resultSet = selectFromWhere("select nome ","from sensores ","where id = " + no); 
            resultSet.next();
            ResultSet resultSet1 = selectFromWhere("select nome ","from gerentes ","where id = (select gerente_id from sensores where id = " + no + ")");
            resultSet1.next();
            System.out.println("==== Gravando no banco de dados " + ip + " o valor " + valor + " do alicate " + (resultSet.getString("nome")) + " do gerente " + (resultSet1.getString("nome")) + " ====");
        } catch (SQLException ex) {
            Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public ResultSet selectFromWhere(String select, String from, String where) throws SQLException {
        StringBuilder stb = new StringBuilder();
        stb.append(select);
        stb.append(from);
        stb.append(where);
        stm = con.createStatement();
        return stm.executeQuery(stb.substring(0));
    }
    
}
